package org.budo.jdbc.driver;

import java.sql.ResultSetMetaData;
import java.sql.SQLException;

import org.budo.jdbc.driver.exception.BudoJdbcDriverNotSupportedException;

/**
 * @author li
 */
public abstract class AbstractBudoJdbcResultSetMetaData implements ResultSetMetaData {
    public int isNullable(int column) throws SQLException {
        return ResultSetMetaData.columnNullableUnknown;
    }

    @Override
    public boolean isAutoIncrement(int column) throws SQLException {
        return false;
    }

    @Override
    public int getColumnCount() throws SQLException {
        throw new BudoJdbcDriverNotSupportedException();
    }

    @Override
    public String getColumnLabel(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException();
    }

    @Override
    public String getColumnName(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException();
    }

    @Override
    public int getColumnType(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException();
    }

    @Override
    public String getColumnClassName(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException();
    }

    public int getScale(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException("#13 this=" + this);
    }

    public int getPrecision(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException();
    }

    public <T> T unwrap(Class<T> iface) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException();
    }

    public boolean isWrapperFor(Class<?> iface) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException();
    }

    public boolean isCaseSensitive(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException();
    }

    public boolean isSearchable(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException();
    }

    public boolean isCurrency(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException();
    }

    public boolean isSigned(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException("#74 this=" + this);
    }

    public int getColumnDisplaySize(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException("#53 this=" + this);
    }

    public String getSchemaName(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException("#57 this=" + this);
    }

    public String getTableName(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException("#61 this=" + this);
    }

    public String getCatalogName(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException();
    }

    public String getColumnTypeName(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException();
    }

    public boolean isReadOnly(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException();
    }

    public boolean isWritable(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException();
    }

    public boolean isDefinitelyWritable(int column) throws SQLException {
        throw new BudoJdbcDriverNotSupportedException();
    }
}
